import http from '@/common/api/http.js';
import appUser from '@/common/app-user.js';
import bus from '@/common/bus/bus.js';

/**
* 功能：版本更新
* 作者：huangzj
* 日期: 2021-05-28
*/
export function checkUpdate(isActive) {
	// #ifdef APP-PLUS
	http.post('/business/tslm-service/app/versionUpdateForBusiness', {
			version: plus.runtime.version
		}).then(res => {
			
			// res = {
			// 	"updateUrl": "https://download.alicdn.com/wireless/tmallandroid/latest/tmallandroid_10002119.apk?spm=a223j.9678140.0.2.316c3827kcnbT4&acm=lb-zebra-259695-2359059.1003.4.3815375&scm=1003.4.lb-zebra-259695-2359059.OTHER_15308371537901_3815375",
			// 	"isForceLogout": 0,
			// 	"description": "这是升级说明啊啊啊啊",
			// 	"forceLogoutVersionName": "2.0.0",
			// 	"versionName": "2.0.0",
			// 	"isUpdate": 1,
			// 	"isForceUpdate": false
			// }
			
			//处理app端从应用市场自己下载强制退登版本安装后的退登逻辑
			//forceLogoutVersionName 表示最近的一次强制退出的版本号
			if (res.forceLogoutVersionName && res.isForceLogout == 1) {
				let logoutVersion = uni.getStorageSync('tslm_force_logout_version');
				if (logoutVersion != res.forceLogoutVersionName) {
					appUser.logout();
					uni.setStorageSync('tslm_force_logout_version', res.forceLogoutVersionName);
				}
			}
			if (res.isUpdate == 1) { //1 升级，0 不升级
				let data = encodeURIComponent(JSON.stringify(res));
				uni.navigateTo({
					url: `/pages/version/upgrade-popup?data=${data}`
				})
			} else {
				bus.emit('versionUpdate', true);
				if (isActive) {
					uni.showToast({
						title: '当前已为最新版',
						icon: 'none'
					});
				}
			}
		}).catch(err => {
			bus.emit('versionUpdate', true);
		})
	// #endif
	
	// #ifdef MP-WEIXIN
	const updateManager = uni.getUpdateManager();
	// 查询新版本信息
	updateManager.onCheckForUpdate(res => {
		console.log('----检测小程序新版----' + JSON.stringify(res));
		if (!res.hasUpdate && isActive) {
			uni.showToast({
				title: '当前已为最新版',
				icon: 'none'
			});
		}
	});
	// 新版本下载完成
	updateManager.onUpdateReady(res => {
		console.log('----新版小程序下载完成----')
		uni.showModal({
			title: '更新提示',
			content: '新版本已经准备好，是否重启应用？',
			success(res) {
			  if (res.confirm) {
			    // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
			    updateManager.applyUpdate();
			  }
			}
		});
	});
	// 新版本下载失败
	updateManager.onUpdateFailed(res => {
		console.log('----新版小程序下载失败----' + JSON.stringify(res))
		if (isActive) {
			uni.showToast({
				title: '更新失败',
				icon: 'none'
			});
		}
	});
	bus.emit('versionUpdate', true);
	// #endif
}

